package it.traveldream.worker.beans;

import it.traveldreamClient.auxiliary.Input;
import it.traveldreamClient.beans.CreazioneNuovoTipoMgr;
import it.traveldreamClient.beans.dto.NuovoTipoTrasportoDTO;

import java.util.LinkedList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 * @author Alessio
 *
 */
@ManagedBean(name="creaTipo")
@ViewScoped
public class CreazioneNuovoTipoBean {
	
	@EJB
	private CreazioneNuovoTipoMgr creaMgr;
	private NuovoTipoTrasportoDTO dto;
	private List<Input> radioButtons;
	private List<Input> checkBoxes;
	private List<Input> textAreas;
	private int numeroCheckBoxes;
	private int numeroTextAreas;
	private int numeroRadioButtons;
	
	
	
	public CreazioneNuovoTipoBean () {
		dto=new NuovoTipoTrasportoDTO();
		radioButtons=new LinkedList<Input>();
		checkBoxes=new LinkedList<Input>();
		textAreas=new LinkedList<Input>();
		numeroCheckBoxes=1;
		numeroTextAreas=1;
		numeroRadioButtons=1;
	}
	
	
	public int getNumeroCheckBoxes() {
		return numeroCheckBoxes;
	}



	public void setNumeroCheckBoxes(int numeroCheckBoxes) {
		this.numeroCheckBoxes = numeroCheckBoxes;
	}



	public int getNumeroTextAreas() {
		return numeroTextAreas;
	}



	public void setNumeroTextAreas(int numeroTextAreas) {
		this.numeroTextAreas = numeroTextAreas;
	}



	public int getNumeroRadioButtons() {
		return numeroRadioButtons;
	}



	public void setNumeroRadioButtons(int numeroRadioButtons) {
		this.numeroRadioButtons = numeroRadioButtons;
	}



	public List<Input> getRadioButton() {
		return radioButtons;
	}


	public List<Input> getCheckBoxes() {
		return checkBoxes;
	}


	public List<Input> getTextAreas() {
		return textAreas;
	}


	public void setTextAreas(List<Input> textAreas) {
		this.textAreas = textAreas;
	}


	public void setRadioButton(List<Input> radioButton) {
		this.radioButtons = radioButton;
	}


	public void setCheckBoxes(List<Input> checkBoxes) {
		this.checkBoxes = checkBoxes;
	}


	

	public NuovoTipoTrasportoDTO getDto() {
		return dto;
	}



	public void setDto(NuovoTipoTrasportoDTO dto) {
		this.dto = dto;
	}



	public CreazioneNuovoTipoMgr getCreaMgr() {
		return creaMgr;
	}



	public void setCreaMgr(CreazioneNuovoTipoMgr creaMgr) {
		this.creaMgr = creaMgr;
	}

	public void addTextArea(){
		textAreas.add(new Input("Specifcare il nome dell'attributo da inserire nella text area numero"+numeroTextAreas));
		numeroTextAreas++;
	}
	public void addCheckBox(){
		checkBoxes.add(new Input("Specifcare il nome dell'opzione selezionabile con la check box numero"+numeroCheckBoxes));
		numeroCheckBoxes++;
	}
	
	public void addRadioButton(){
		radioButtons.add(new Input("Specifcare il nome dell'opzione selezionabile con il radio button numero"+numeroRadioButtons));
		numeroRadioButtons++;
	}
	
	public void removeTextArea(){
		if(!(textAreas.isEmpty())){
				textAreas.remove(numeroTextAreas-2);
				numeroTextAreas--;
		}
	}
	
	public void removeCheckBox(){
		if(!(checkBoxes.isEmpty())){
			checkBoxes.remove(numeroCheckBoxes-2);
			numeroCheckBoxes--;
		}
	}

	public void removeRadioButton(){
		if(!(radioButtons.isEmpty())){
			radioButtons.remove(numeroRadioButtons-2);
			numeroRadioButtons--;
		}
	}
	
	
	
	public String saveType() {
		
		for(int i=0;i<numeroTextAreas-1;i++){
			if(!(textAreas.get(i).getValue().isEmpty()))
				dto.getLabelTextAreas().add(textAreas.get(i).getValue());
		}
		for(int i=0;i<numeroCheckBoxes-1;i++){
			if(!(checkBoxes.get(i).getValue().isEmpty()))
				dto.getOpzioniCheckBoxes().add(checkBoxes.get(i).getValue());
		}		
		for(int i=0;i<numeroRadioButtons-1;i++){
			if(!(radioButtons.get(i).getValue().isEmpty()))
				dto.getOpzioniRadioButton().add(radioButtons.get(i).getValue());
		}
		creaMgr.saveType(dto);
		
		return "conferma?faces-redirect=true";
		
	}
		
}

